package com.mes.service.jy;

import java.util.List;

import com.mes.entity.hy.Work;
import com.mes.entity.jy.Plandetail;
import com.mes.entity.jy.Queryjy;

/**
 * @ClassName: ProductPlanDetailServise 
 * @Description:生产计划单详情业务层接口
 * @Author jy
 * @Date 2017年12月27日 下午2:55:25 
 * @version 1.0
 */
public interface ProductPlanDetailServise {

	/**
	 * 添加或修改生产计划详情
	 * @param planDetail 生产计划详情实体
	 * @return 影响行数
	 */
	public int createOrupdateDetaile(Plandetail planDetail);
	
	/**
	 * 根据生产计划单号统计生产计划单中的详情记录数
	 * @param plannum 生产计划单号
	 * @return 统计结果
	 */
	public int countProductPlanDetail(String plannum);

	
	/**
	 * 根据生产计划单号查询此生产计划单中的详情列表
	 * @param plannum 生产计划单号
	 * @return 生产计划详情集合
	 */
	public List<Plandetail> selectPlanDetail(String plannum);
	
	/**
	 * 根据id查询生产计划单详情
	 * @param id 生产集合详情id
	 * @return 生产计划详情实体
	 */
	public Plandetail slectPlanDetailByid(Long id);

	/**
	 * 查询所有的生产计划详情 
	 * @param queryjy  条件查询实体
	 * @return  生产计划详情实体集合
	 */
	public List<Plandetail> selectAllPlanDetail(Queryjy queryjy);

	/**
	 * 根据id修改状态
	 * @param plandetail 计划详情实体，此方法中要id,和状态两个参数
	 * @return 影响行数
	 */
	public int editWstape(Plandetail plandetail);

	/**
	 * 将排产详情中的开始时间，结束时间，排产数量更新到生产计划单详情中
	 * @param plandetail 生产计划详情实体
	 */
	public void editDyDetail(Plandetail plandetail);

	/**
	 * 修改未排产计划量
	 * @param plandetail2 生产计划详情实体
	 */
	public void editRemark11(Plandetail plandetail2);

	/**
	 * 清空计划详情中没用的数据 
	 */
	public void editDyDetail2();

	/**
	 * 统计这个单子中所有未排产的记录
	 * @param plannum 生产计划单号
	 * @return 统计结果
	 */
	public int countProductPlanDetail2(String plannum);

	/**
	 * 查询所有未排产的详情记录
	 * @param plannum 生产计划单号
	 * @return 生产计划详情集合
	 */
	public List<Plandetail> selectPlanDetail2(String plannum);
 
	/**
	 * 删除冗余数据
	 */
	public void deleteNumNotin();

	/**
	 * 查询所有正在生产中或生产完成的计划单详情
	 * @param queryjy  条件查询实体
	 * @return 统计结果
	 */
	public int countProductAllPlanDetailByState(Queryjy queryjy);
	
	/**
	 * 修改计划详情状态为已做采购计划 0-->1
	 * @param plandetail 生产计划实体
	 */
	public void editPlanDetailRemark13(Plandetail plandetail);

}
